package com.zhiche.lisa.bms.service.driver;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.zhiche.lisa.bms.dao.model.driver.Route;
import com.zhiche.lisa.bms.pojo.vo.driver.RouteVO;
import com.zhiche.lisa.core.supports.BaseException;
import org.springframework.validation.BindingResult;

import java.util.List;

/**
 * <p>
 * 线路表 服务类
 * </p>
 *
 * @author zhaoguixin
 * @since 2018-08-30
 */
public interface IRouteService extends IService<Route> {

    /**
     * 分页查询线路
     * @param page
     * @return
     */
    Page<RouteVO> listByPage(Page<RouteVO> page);

    /**
     * 添加线路信息
     * @param routeVO
     * @param br
     * @return
     */
    Integer add(RouteVO routeVO,BindingResult br);

    /**
     * 更新线路信息
     * @param routeVO
     * @param br
     * @return
     */
    Boolean update(RouteVO routeVO,BindingResult br);

    /**
     * 更新线路可用还是不可用
     * @param id
     * @param enableOrDisabled
     * @return
     */
    Boolean enableOrDisabled(Integer id, Boolean enableOrDisabled);

    /**
     * 删除线路信息
     * @param id
     * @return
     * @throws BaseException
     */
    Boolean del(Integer id) throws BaseException;

    /**
     * 根据id得到车型信息
     * @param id
     * @return
     */
    RouteVO getById(Integer id);

    /**
     * 根据关键字得到起点区域
     * @param keyword
     * @return
     */
    List<String> getOTagsByKey(String keyword);

    /**
     * 根据关键字得到终点区域
     * @param keyword
     * @return
     */
    List<String> getDTagsByKey(String keyword);

    /**
     * 根据关键字得到线路
     * @param keyWord
     * @return
     */
    List<RouteVO> listByKeyword(String keyWord);

}
